list-[id].vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <!-- 头部 -->
  3. <templateHead v-if="skinId <= 4"></templateHead>
  4. <!-- 皮肤5头部 -->
  5. <templateHead5 v-if="skinId == 5"></templateHead5>
  6. <!-- 皮肤6头部 -->
  7. <templateHead6 v-if="skinId == 6"></templateHead6>
  8. <!-- 皮肤7头部 -->
  9. <templateHead7 v-if="skinId==7"></templateHead7>
  10. <!-- 菜单 -->
  11. <templateMenu v-if="skinId <= 4"></templateMenu>
  12. <!-- 皮肤5菜单 -->
  13. <templateMenu5 v-if="skinId >= 5"></templateMenu5>
  14. <!-- 内容 -->
  15. <div v-for="(item,index) in templateData" :key="index">
  16. <!--1.广告通栏-->
  17. <div v-if="item.sectorName=='adSector'">
  18. <templateAd :skinId="skinId" :adData="adData" :adTag="item.ad.ad_tag"></templateAd>
  19. </div>
  20. <!--2.底部菜单-列表-->
  21. <div v-if="item.sectorName=='aboutListSector'">
  22. <templateAboutList :skinId="skinId" :templateData="item.componentList"></templateAboutList>
  23. </div>
  24. <!--3.皮肤6 底部菜单-列表-->
  25. <div v-if="item.sectorName=='ListupdownSector'">
  26. <templateListupdownSector :skinId="skinId" :templateData="item.componentList"></templateListupdownSector>
  27. </div>
  28. <!--4.皮肤7 底部菜单-列表-->
  29. <div v-if="item.sectorName=='pageListSector'">
  30. <templatePageListSector :skinId="skinId" :templateData="item.componentList"></templatePageListSector>
  31. </div>
  32. </div>
  33. <!-- 底部 -->
  34. <templateFoot v-if="skinId <= 4"></templateFoot>
  35. <!-- 皮肤5底部 -->
  36. <templateFoot1 v-if="skinId == 5 || skinId == 6"></templateFoot1>
  37. <!-- 皮肤7底部 -->
  38. <templateFoot2 v-if="skinId==7"></templateFoot2>
  39. </template>
  40. <script setup lang="ts">
  41. //0.加载全局模板组件 start---------------------------------------->
  42. //0.1 全局通栏
  43. import templateHead from '@/components/template/sector/head/1200x200/1.vue'
  44. import templateHead5 from '@/components/template/sector/head/1200x250/1.vue'
  45. import templateHead6 from '@/components/template/sector/head/1200x250/6.vue'
  46. import templateHead7 from '@/components/template/sector/head/1200x250/7.vue'
  47. import templateMenu from '@/components/template/sector/menu/1200x130/1.vue'
  48. import templateMenu5 from '@/components/template/sector/menu/1200x187/1.vue'
  49. import templateFoot from '@/components/template/sector/foot/1200x580/1.vue'
  50. import templateFoot1 from '@/components/template/sector/foot/1200x680/1.vue'
  51. import templateFoot2 from '@/components/template/sector/foot/1200x700/1.vue'
  52. //0.2 局部通栏
  53. //0.2.1 广告组件
  54. import templateAd from '@/components/template/sector/body/ad/1200x90/1.vue'
  55. //0.2.2 底部详情-列表
  56. import templateAboutList from '@/components/template/sector/body/about/1200x1290/1.vue'
  57. //0.2.3 皮肤6 底部菜单-列表
  58. import templateListupdownSector from '@/components/template/sector/body/about/1200x1575/6/1.vue'
  59. //0.2.4 皮肤7 底部菜单-列表
  60. import templatePageListSector from '@/components/template/sector/body/about/1200x1700/1.vue'
  61. //0.加载全局模板组件 end---------------------------------------->
  62. //1.获得基本信息单元 start---------------------------------------->
  63. //1.1获得页面依赖
  64. import { ref, onMounted } from 'vue';
  65. //1.2获得pinia源
  66. import { useTemplateBaseStore } from '@/stores/templateBase'
  67. const templateBaseStore:any = useTemplateBaseStore()
  68. //1.3获得该页的皮肤id - 在每个组件中也是同样的获得方法
  69. const skinId = ref<number>(0)
  70. const websiteId = ref<number>(0)
  71. //1.4获得站点基本信息
  72. const responseStatus = await requestDataPromise('/web/getWebsiteAllinfo', {
  73. method: 'GET',
  74. query: {
  75. 'link_textnum':24,
  76. 'link_imgnum':18,
  77. 'link_footnum':4
  78. },
  79. });
  80. if (responseStatus.code == 200) {
  81. if(responseStatus.data.website_foot.foot_info.status == 1){
  82. //网站模板已停用,直接转入404页面
  83. navigateTo('/error?findPage=index')
  84. }else{
  85. //0.3.1设置站点基本信息
  86. templateBaseStore.setWebSiteInfo(responseStatus.data)
  87. websiteId.value = responseStatus.data.website_head.id;//获得网站id
  88. //0.3.2设置皮肤id
  89. skinId.value = templateBaseStore.webSiteInfo.website_foot.foot_info.template_id;
  90. console.log("当前的网站id:"+responseStatus.data.website_head.id)
  91. //0.3.3设置seo信息
  92. let seoTitle = templateBaseStore.webSiteInfo.website_head.title;
  93. let seoDescription = templateBaseStore.webSiteInfo.website_head.description;
  94. let seoKeywords = templateBaseStore.webSiteInfo.website_head.keywords;
  95. let seoSuffix = templateBaseStore.webSiteInfo.website_head.suffix;
  96. let seoName = templateBaseStore.webSiteInfo.website_head.website_name;
  97. useHead({
  98. title: seoTitle + "_" + seoSuffix,
  99. meta: [
  100. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  101. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 }
  102. ]
  103. });
  104. }
  105. }
  106. //1.获得基本信息单元 end---------------------------------------->
  107. //2.页面数据 start---------------------------------------->
  108. //2.1获得页面数据
  109. const response = await requestDataPromise('/client/indexData', {
  110. method: 'POST',
  111. body: {
  112. 'website_id':websiteId.value,
  113. 'getpage':'aloneList'
  114. },
  115. });
  116. //页面数据
  117. const templateData = response.data.template.aloneList;
  118. console.log(templateData)
  119. //广告数据
  120. const adData = ref<any[]>([]);
  121. adData.value.push(response.data.ad.top)
  122. for(let item of response.data.ad.aloneList){
  123. adData.value.push(item)
  124. }
  125. templateBaseStore.setAdList(adData.value)
  126. //2.页面数据 end---------------------------------------->
  127. </script>
  128. <style lang="less" scoped>
  129. //@import '@/assets/css/about.less';
  130. </style>